package com.mryang.hds.mapper;

import com.mryang.hds.entity.Need;
import com.mryang.hds.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Genius
 * @version 1.0.0
 * @ClassName UserMapper.java
 * @Description TODO
 * @createTime 2022年12月24日 14:11:00
 */

@Mapper
public interface UserMapper{

    List<User> getAllUser();

    User getUserById(@Param("uid") Integer uid);

    /**
     * 修改用户是否填报行程信息
     * @param uId 用户编号
     */
    void updateUserTrip(@Param("uid") Integer uId);

    /**
     * 修改密码
     * @param uid
     * @param newPwd
     * @return
     */
    int updatePwd(@Param("uid") Integer uid, @Param("newPwd") String newPwd);

    /**
     * 修改用户表 打卡信息字段
     * @param uid 用户编号
     * @param punchInfo 当日是否打卡，数据是否异常
     */
    void updatePunchInfo(@Param("uid") int uid,@Param("punchInfo") int punchInfo);

    void addUser(@Param("user") User user);

    void editUser(@Param("uName") String name,
                  @Param("address") String address,
                  @Param("idCard") String idCard,
                  @Param("phone") String phone,
                  @Param("userId") Integer userId,
                  @Param("gender") Integer gender,
                  @Param("age") Integer age,
                  @Param("status") Integer status,
                  @Param("tripOk") Integer tripOk,
                  @Param("punchInfo") Integer punchInfo
                );


    List<User> getUserSelectTags(@Param("selectedTag") Integer selectedTag);

    List<User> getUByCreator(@Param("createId") String createId);

    List<User> getAssmUser(@Param("createOk") Integer createOk);

    void editSelectsUser(@Param("userId") Integer userId,
                         @Param("createId") String createId,
                         @Param("time") String time);

    List<User> searchNoAssm(@Param("name") String name,
                      @Param("createOk") Integer createOk,
                      @Param("address") String address);

    void editUserRecuperate(@Param("recuperate") Integer recuperate,@Param("userId")Integer userId);

    List<User> getUserByCreateId(@Param("userId") Integer userId);

    void editPunchInfoAll(@Param("punchInfo") Integer punchInfo);

    User getUserByIdCard(@Param("idCard") String idCard);
}
